package com.dhcc.DRGsHosp.web.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.dayatang.utils.Page;
import org.openkoala.koala.commons.InvokeResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.MDCGroupFacade;
import com.dhcc.DRGsHosp.facade.dto.ADRGDTO;
import com.dhcc.DRGsHosp.facade.dto.IndexCalDTO;
import com.dhcc.DRGsHosp.facade.dto.MDCGroupDTO;
/**
 * 
 * @title		:MDCGroupController.java
 * @description	:
 * @author		:liuhongjun
 * @date		:2015年9月1日
 * @version     :1.0
 * @copyright   :DHCC 2013-2015
 */
@Controller("drgsHospWebController26")
@RequestMapping("/MDCGroup")
public class MDCGroupController {
		
	@Autowired
	private MDCGroupFacade mDCGroupFacade;
	
	@ResponseBody
	@RequestMapping("/add")
	public InvokeResult add(MDCGroupDTO mDCGroupDTO) {
		return mDCGroupFacade.creatMDCGroup(mDCGroupDTO);
	}
	
	@ResponseBody
	@RequestMapping("/update")
	public InvokeResult update(MDCGroupDTO mDCGroupDTO) {
		return mDCGroupFacade.updateMDCGroup(mDCGroupDTO);
	}
	
	@ResponseBody
	@RequestMapping("/pageJson")
	public Page pageJson(MDCGroupDTO mDCGroupDTO, @RequestParam int page, @RequestParam int pagesize) {
		Page<MDCGroupDTO> all = mDCGroupFacade.pageQueryMDCGroup(mDCGroupDTO, page, pagesize);
		return all;
	}
	
	@ResponseBody
	@RequestMapping("/delete")
	public InvokeResult remove(@RequestParam String mdcCodes) {
		String[] value = mdcCodes.split(",");
        String[] idArrs = new String[value.length];
        for (int i = 0; i < value.length; i ++) {
        					idArrs[i] = value[i];
			        				        }
        return mDCGroupFacade.removeMDCGroups(idArrs);
	}
	
	@ResponseBody
	@RequestMapping("/get/{mdcCode}")
	public InvokeResult get(@PathVariable String mdcCode) {
		return mDCGroupFacade.getMDCGroup(mdcCode);
	}
	
		
    @InitBinder    
    public void initBinder(WebDataBinder binder) {  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    
        dateFormat.setLenient(false);    
        //CustomDateEditor 可以换成自己定义的编辑器。
        //注册一个Date 类型的绑定器 。
        binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
	}
    
    /**
     * 
     * @methodname    :findAllMDCGroup
     * @description   : 获取全部mdc
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月1日
     */
    @ResponseBody
	@RequestMapping(value = "/findAllMDCGroup")
    public InvokeResult findAllMDCGroup(IndexCalDTO dto) {
    	return mDCGroupFacade.findAllMDCGroup(dto);
	}
    
    /**
     * 
     * @methodname    :findAllMDC
     * @description   : 获取全部mdc
     * @param         :
     * @author        :chenhanlin
     * @return        :
     * @date          :2017年8月8日
     */
    @ResponseBody
    @RequestMapping(value = "/findAllMDC")
    public InvokeResult findAllMDC(MDCGroupDTO mdcDto) {
    	return InvokeResult.success(mDCGroupFacade.findAllMDC(mdcDto)) ;
    }
    
    /**
     * 
     * @methodname    :adrgListByMdc
     * @description   : 根据MDC获取adrg
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月1日
     */
    @ResponseBody
	@RequestMapping(value = "/adrgListByMdc")
	public InvokeResult adrgListByMdc(MDCGroupDTO dto) {
    	return mDCGroupFacade.adrgListByMdc(dto);
	}
    /**
     * 
     * @methodname    :drgListByMdc
     * @description   : 根据MDC获取drg
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月1日
     */
    @ResponseBody
	@RequestMapping(value = "/drgListByMdc")
	public InvokeResult drgListByMdc(MDCGroupDTO dto) {
    	return mDCGroupFacade.drgListByMdc(dto);
	}	
    /**
     * 
     * @methodname    :drgListByAdrg
     * @description   : 点击 adrg获取drg信息
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月2日
     */
    @ResponseBody
   	@RequestMapping(value = "/drgListByAdrg")
   	public InvokeResult drgListByAdrg(ADRGDTO dto) {
       	return mDCGroupFacade.drgListByAdrg(dto);
   	}	
   
    /**
     * 
     * @methodname    :mdcSearch
     * @description   : 搜索获取mdc
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月2日
     */
    @ResponseBody
   	@RequestMapping(value = "/mdcSearch")
   	public InvokeResult mdcSearch(MDCGroupDTO dto) {
    	return mDCGroupFacade.mdcSearch(dto);
   	}	
    /**
     * 
     * @methodname    :queryVercode
     * @description   : 获取所有的版本号
     * @param         :
     * @author        :liuhongjun
     * @return        :
     * @date          :2015年9月13日
     */
    @ResponseBody
	@RequestMapping(value = "/queryVercode")
    public InvokeResult queryVercode(MDCGroupDTO dto) {
    	return mDCGroupFacade.queryVercode(dto);
	}
    /**
     *  @Discription：上传drg数据
     *  @Author： liuhongjun
     *  @param path
     *  @param type
     *  @return
     *  @Date:2018年5月8日下午1:23:46
     */
    @ResponseBody
	@RequestMapping(value = "/drgFileupload")
    public InvokeResult drgFileupload(String path,String type,String verCode) {
    	return mDCGroupFacade.drgFileupload(path,type,verCode);
	}
}
